package com.supermap.dubbo.api.cloud.survey;

import com.supermap.dataservice.util.JSONUtil;
import com.supermap.dataservice.util.Table;

import java.util.List;

/**
 * @author aqua
 * @description
 * @date 2018年12月11 下午 3:20
 * @email 1301584033@qq.com
 */
public interface SurveyService {

    /**
     * 通过区域查询所有问卷调查
     */
    JSONUtil getSurveyCategoryByAreaCode(String areaCode);

    /**
     * 通过问卷ID查询问卷
     */
    JSONUtil getSurveyByCategoryId(Integer id);

    /**
     * 上传问题答案
     */
    JSONUtil putSurvey(List<Surveyanswer> surveyanswerList);

    /***
     * sms问卷列表
     * **/
    JSONUtil getSurveyByAreaCodeSMS(int areaCode, Table table);

    /**
     * 获取sms数据库的内部用户名称
     **/
    String getSmsBaseUserById(String id);

    /**
     * sms统计按时间筛选
     **/
    JSONUtil getCountServeySmsBySendTime(String startTime, String endTime, Table table, String areaCode);

    /***
     * 获取每题选项比例
     * */
    JSONUtil getSurveryPre(String contentid, String areaCode);

    /**
     * 根据问卷id获取回答人员名称
     **/
    JSONUtil getAnsSurveyUserNameBySurveyId(Table table, String surveyId, String areaCode);

    /**
     * 根据用户和问卷id获取问卷及答案
     */
    JSONUtil getUserOptionByIdAndUserId(Integer id, String userId);

    /**
     * 获取问卷调查
     * */
    JSONUtil getSurveyName(String areaCode,String userId);
    /**
     * 获取问卷大题
     * */
    JSONUtil getSurveyMenuName(String surveyId);

    /***
     * 删除问卷
     * **/
    JSONUtil delSurvey(String id);
    /**
     * 删除大题
     * **/
    JSONUtil delSurveyMenu(String id);
    /**
     * 删除小题
     * **/
    JSONUtil delSurveyContent(String id);
    /**
     * 获取小题及选项
     * **/
    JSONUtil getContentAndOptions(Integer id);
    /***
     * 更新试卷
     * **/
    JSONUtil updateSurvey(SurveyDoc surveyDoc);
    /**
     * 修改问卷大题
     * **/
    JSONUtil updateSurveyMenu(SurveyMenu surveyMenu);
    /**
     * 修改问卷小题及选项
     * */
    JSONUtil updateSurveyContentAndOptions(SurveyContent content);
    /***
     * 新增问卷
     * **/
    JSONUtil insertSurvey(SurveyDoc surveyDoc);
    /***
     * 新增大题
     * **/
    JSONUtil insertSurveyMenu(SurveyMenu surveyMenu);
    /***
     * 新增小题及选项
     * */
    JSONUtil insertSurveyContentAndOptions(SurveyContent content);
}
